#ifndef MENU_H
#define MENU_H

#include <fstream>
#include <vector>

///menu.h is class definition for handle menu

#include "document.h"

class Menu
{
	private:
		std::vector<Document> *menu_v_ptr;

		enum Menu_options_enum
		{
			INVALID_CHOICE,
			ADD_ORDER, ///hatarozat
			ADD_TENDER, ///ajanlatkeres
			ADD_CLAIM, ///panaszos level
			ADD_BILL, ///szamla
			QUERY_PARTNER, ///kerese partnerre
			QUERY_ISSUE, ///kereses ugyszamra
			QUERY_REF_NO, ///kereses iktatoszamra
			EXIT_AND_SAVE ///mentes es kilepes
		};

		Menu_options_enum get_menu_choice() const;

		void do_chosen_menu(const Menu_options_enum &p_menu);

	public:
		Menu(std::vector<Document> *p_menu_v_ptr);

		~Menu();
		
		enum Menu_exceptions
		{
			UNKNOWN_MENU_CHOICE
		};

		void write_main_menu() const;

		void add_document(const Document::Document_types &p_type);

		void query_partner() const;

		void query_issue_no() const;

		void query_ref_no() const;

};

#endif
